﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PQ.Model;
using System.IO;

namespace PQ.IBL
{
    public interface IBLUser
    {
        //判断是否需要验证码
        /// <summary>
        /// 判断是否需要验证码
        /// </summary>
        /// <param name="userEntity"></param>
        /// <returns></returns>
        bool IsNeedVerifyCode(UserEntity userEntity);

        //用户登陆
        /// <summary>
        /// 用户登陆
        /// 在执行此方法前务必先执行判断是否需要验证码的方法
        /// </summary>
        /// <param name="userEntity"></param>
        /// <returns></returns>
        UserEntity Login(UserEntity userEntity);

        //返回验证码的图片流  验证码的获取地址的构成需要48位的算子，需要在判断是否需要验证码时获取
        /// <summary>
        /// 返回验证码的图片流
        /// 验证码的获取地址的构成需要48位的算子，需要在判断是否需要验证码时获取
        /// </summary>
        /// <returns></returns>
        Stream GetVerifyCodePicStream(UserEntity userEntity);

        //获取好友及好友分组
        /// <summary>
        /// 获取好友及好友分组
        /// </summary>
        /// <returns></returns>
        UserEntity GetUserFriends(UserEntity userEntity);

        //退出
        /// <summary>
        /// 退出
        /// </summary>
        /// <param name="userEntity"></param>
        void LogOut(UserEntity userEntity);


        //获取用户头像
        /// <summary>
        /// 获取用户头像
        /// </summary>
        /// <param name="qq"></param>
        /// <returns></returns>
        System.IO.Stream GetUserAvatar(string uin);

        //获取即时消息
        /// <summary>
        /// 获取即时消息
        /// </summary>
        List<MessageModel> GetMessage(UserEntity userEntity);


        //给好友发送消息
        /// <summary>
        /// 给好友发送消息
        /// </summary>
        /// <returns></returns>
        bool SendFriendMessage(MessageModel messageModel, UserEntity userEntity);

        //获取 放在 文件中的用户信息
        /// <summary>
        /// 获取 放在 文件中的用户信息
        /// 密码未加密码
        /// </summary>
        /// <returns></returns>
        List<UserEntity> GetUsers();

    }
}
